ca8fd56e425af33b81c5579bc3cb7d0f73430274,src/main/java/fr/inria/astor/core/manipulation/sourcecode/VariableResolver.java,VariableResolver,convertIngredient,#VarMapping#Map#,611

Before Change


		Map<VarWrapper, List<CtVariable>> mappedVars = varMapping.getMappedVariables();
		for (VarWrapper var : mappedVars.keySet()) {
			CtVariable varNew = mapToFollow.get(var.getVar().getVariable().getSimpleName());
			originalMap.put(var.getVar(), var.getVar().getVariable());
			var.getVar().setVariable(varNew.getReference());
		}

After Change


			//
			CtVariableReference newVarReference = varNew.getReference();

			CtVariableAccess originalVarAccessDestination = var.getVar();
			CtVariableAccess newVarAccessDestination = null;

			// if the var to reference is a local or parameter
			if (newVarReference instanceof CtLocalVariableReference
					|| newVarReference instanceof CtParameterReference) {
				// let's check the destination Writes or Reads
				if (originalVarAccessDestination instanceof CtFieldWrite
						|| originalVarAccessDestination instanceof CtVariableWrite) {
					// We replace the Write by a Var writter
					newVarAccessDestination = MutationSupporter.getFactory().Core().createVariableWrite();
					newVarAccessDestination.setVariable(newVarReference);

				} else { // read
					newVarAccessDestination = MutationSupporter.getFactory().Code().createVariableRead(newVarReference,